//
//  UIView+ACExt.h
//  ACFramework
//
//  Created by caoyq on 2018/5/23.
//  Updated by caoyq on 2018/6/25.
//

#import <UIKit/UIKit.h>

/** 添加的边框方向 */
typedef NS_ENUM(NSInteger, UIViewBorderDirection) {
    UIViewBorderDirectionTop = 0,
    UIViewBorderDirectionLeft,
    UIViewBorderDirectionBottom,
    UIViewBorderDirectionRight
};

@interface UIView (ACExt)

#pragma mark - 视图

/**
 *  自动从xib创建视图
 */
+(instancetype)ac_viewFromXIB;

/**
 *  添加一组子view：
 */
- (void)ac_addSubviewsWithArray:(NSArray *)subViews;

/**
 *  批量移除视图
 *
 *  @param views 需要移除的视图数组
 */
- (void)ac_removeViews:(NSArray *)views;

/**
 寻找当前view所在的主视图控制器
 
 @return 返回当前主视图控制器
 */
- (UIViewController *)ac_viewController;

/**
 给UIView添加背景视图（本地图片）

 @param imageName 图片名字
 @param ext       图片类型拓展. e.g. @"png"
 */
- (void)ac_setBackgroundImage: (NSString *)imageName ofType: (NSString *)ext;

#pragma mark - 添加边框、圆角

/**
 添加单条边框
 
 @param direction 边框方向
 @param color     边框颜色
 @param width     边框宽度
 */
- (void)ac_addSingleBorder: (UIViewBorderDirection)direction color: (UIColor *)color width: (CGFloat)width;

/**
 * 设置任意角为圆角.
 *
 * 注意：autolayout布局时，需要放在设置layout代码之后.
 *
 * @param direction  具体角 UIRectCorner 类型，可选值，可同时设置多个，用 | 连接
 * @param radius     圆角弧度值
 */
- (void)ac_addCornerWithDirection: (UIRectCorner)direction radius: (CGFloat)radius;

#pragma mark - 阴影

/**
 * 设置阴影
 *
 * @param color 阴影的颜色
 * @param offset 偏移量
 * @param radius 阴影半径
 * @param opacity 阴影透明度
 */
- (void)ac_setLayerShadow:(UIColor*)color offset:(CGSize)offset radius:(CGFloat)radius opacity: (CGFloat)opacity;

@end
